package com.zhanghp.class031;

/**
 * Brian Kernighan算法
 * 提取出二进制里最右侧的1
 * 判断一个整数是不是2的幂
 * 测试链接 : https://leetcode.cn/problems/power-of-two/
 *
 * @author zhanghp
 * @since 2024/4/8 15:24
 */
public class Code01_PowerOfTwo {

    static class Solution {
        public boolean isPowerOfTwo(int n) {
            // 1.前提为大于0的数
            // 2.brain算法提取最右侧的1，然后看是否相等于原来的数（思路：2的幂，在整个二进制只有1个1）
            return n > 0 && (n & -n) == n;
        }
    }

}
